硬體測試

簡要說明

檔案: \examples\Processing\DebuggingAndTest\HardwareTest\HardwareTest.va

預設平台: mE5-MA-VCL

短說明

用於 DMA、RAM、GPIO、觸發與 LED 硬體自我測試的範例。 此範例廣泛使用了 parameters library 的運算子。

Hardware Test 範例執行硬體自我測試。

此 applet 包含以下功能:

  • DMA 效能測試:針對不同記憶體大小與中斷速率的不同影像尺寸
  • RAM 測試:檢查錯誤與處理
  • 相機:檢查相機連接埠影像擷取
  • 相機觸發:傳送觸發訊號至相機
  • GPIO:監控 GPI 並設定 GPO
  • 事件測試:產生軟體回呼事件
  • 監控:FPGA 溫度、電源、PoCL、...(請參閱 BoardStatus)

下圖顯示此 applet 的功能區塊。

Applet Hardware Test 的方塊圖

圖 283. Applet Hardware Test 的方塊圖


VisualApplets 的實作分為兩個程序。 Process0 包含所有影像處理部分,即 DMA 測試、RAM 測試與相機擷取。 相反地,Process1 包含獨立於執行中擷取程序之外的部分。 由於不含 DMA 運算子的程序會在載入 applet 時立即啟動,因此此處的功能可用於獨立於擷取的作業。 如需詳細資訊,請參閱 「不含 DMA 的程序 / 觸發程序」。

以下兩個螢幕截圖顯示 Process0 與 Process1。

Hardware Test Process0

圖 284. Hardware Test Process0


Hardware Test Process1

圖 285. Hardware Test Process1


此 applet 的實作大量使用了 parameters library 的運算子,以便於使用此 applet。 H-Box 實作包含功能部分。 參數會列在 H-Box Parameters 的屬性中以供獨立檢視。 當在例如 microDisplay 中使用 applet 時,這非常有用,因為如下一個螢幕截圖所示,只會列出易於使用的參數。

Applet Hardware Test 在 microDisplay 中使用參數轉換與參考

圖 286. Applet Hardware Test 在 microDisplay 中使用參數轉換與參考


此 applet 的實作相當直接,透過研究 VA 檔案即可輕鬆理解。 不過,我們將更仔細地檢視部分參數轉換與參考,以理解其用法。

主要影像處理部分的實作

主要影像處理部分包含 RAM 測試、DMA 效能測試與相機擷取。 此 applet 僅允許同時在 DMA 通道上輸出其中一種模式。 因此,使用了多個 SourceSelector 運算子。 為了避免繁瑣指定正確輸入索引的參數化設定,我們使用了 EnumParamTranslator 運算子以方便使用。

用於 RAM 測試、DMA 效能測試和相機擷取的 Applet 硬體測試實作

圖 287. 用於 RAM 測試、DMA 效能測試和相機擷取的 Applet 硬體測試實作


接下來我們將詳細說明 TranslateOutputSelect 的 Property 值。

首先,需要定義列舉值。

"DMA_Performance" = 0x001;
"Camera" = 0x002;
"RAM0_Difference" = 0x000;
"RAM0_Errors" = 0x100;
"RAM1_Difference" = 0x010;
"RAM1_Errors" = 0x110;
"RAM2_Difference" = 0x020;
"RAM2_Errors" = 0x120;
"RAM3_Difference" = 0x030;
"RAM3_Errors" = 0x130;

如您所見,列舉值被定義為十六進位值。 這便於輕鬆分發至三個 SourceSelector 模組。 低四位元用於模組 TestMode.SelectSource,第 4 至 7 位元用於 RAMTest/SelectRAM.SelectSource,而第 8 至 11 位元用於 RAMTest/SelectRAMOutputMode/EnableBitpattern.SelectSource。 這有助於非常簡單地實作參數 WriteAction 和 ReadAction。

然後,轉換後的值可用於列舉值。 變更該值將自動變更 SourceSelector 模組的 Property 值。

DMA 效能模式產生器的實作

H-Box GeneratorDMAPerformance 包含圖樣產生器以及用於控制輸出影格率的影像閘閥。 使用空白影像產生器以及像素和影像 Counter 來產生滾動對角線圖樣,使圖樣產生過程非常簡單。

該閘閥由週期產生器運算子 Generate 控制。 該產生器的單位以 tick 為單位。 由於我們想要指定具有時間基底的影格率,因此我們使用轉換運算子 FloatParamTranslator。 因此,我們使用此運算子將每秒影格數轉換為 ticks。 以下螢幕擷取畫面顯示了此實作。

使用 FloatParamTranslator 將每秒影格數轉換為 Ticks

圖 288. 使用 FloatParamTranslator 將每秒影格數轉換為 Ticks


在範例 HardwareTest 中使用運算子 IntParamTranslator 設定 Width 和 Height

影像寬度和高度的處理程序與前幾節中顯示的相同。 在此情況下,我們可以使用運算子 IntParamTranslator。 在此,我們可以將值直接轉發至設計中的兩個模組。 請留意參數 DisplayName 和 DisplayHierarchy 的給定值。

使用 IntParamTranslator 在 Applet 中輕鬆設定 Width 和 Height

圖 289. 使用 IntParamTranslator 在 Applet 中輕鬆設定 Width 和 Height